<?php namespace Common\Model;
use Hdphp\Model\Model;
/**
 * 购物车模型
 */
Class Cart extends Model{
	protected $table = 'cart';
	/**
	 * 存在用户的时候添加到购物车上的
	 */
	public function addCart($data,$uid){
		// p($data);
		//判断是否有uid存在，也就是说是否是session提交的
		//若不存在session，则需要将其进行数据的整理，然后才能进行数据的添加
		if(!isset($data['uid'])){  
			foreach ($data as $key => $value) {  //多条语句，得将其多条语句的添加。
				$data[$key]['uid'] = $uid;
				return $dataNum = $this->addSon($data[$key]);
				p($data[$key]);
			};
		}
		return $dataNum = $this->addSon($data);
	}

	/**
	 * 被上面的addCart调用该方法
	 */
	public function addSon($data){
		//判断提交的商品信息是否符合该条件，若符合则进行提取size，并将该size与提交过来的size进行比较。
		$size = $this->where(array('uid'=>$data['uid']))->where(array('id'=>$data['id']))->lists('size');
		if(isset($size)){
			foreach ($size as $key => $value) {
				if($value === $data['size']){
					//若size相等，则提取出该商品的num值，然后与提交进来的商品num值相加
					$num =$this->where(array('uid'=>$data['uid']))->where(array('id'=>$data['id']))->where(array('size'=>$value))->pluck('num');
					// p($num);
					$num += $data['num'];
					//重新赋值，进行该数据
					$data['num'] = $num;  
					//将数据库里面的该条数据进行删除，然后在进行添加
					$this->where(array('uid'=>$data['uid']))->where(array('id'=>$data['id']))->where(array('size'=>$value))->delete();
				}
			}
		}
		// p($data);
		// 重新添加数据。
		if(!$this->create($data,1)){
			return false;
		}
		$this->add();
		$dataNum = $this->where(array('uid'=>$data['uid']))->count();
		// p($dataNum);
		return $dataNum;
	}


	/**
	 * 显示购物车结算页面数据的方法,能走到这儿的话，说明已经是登录状态了
	 */
	public function show($uid){
		// p($uid);
		$CartData = $this->where(array('uid'=>$uid))->get();
		//实例化购物车，获取到需要的数据
		$GoodsModel = new \Common\Model\Goods;
		$total = $this->where(array('uid'=>$uid))->count();
    	foreach ($CartData as $key => $value) {
    		// if(mb_substr($value['name'],'utf-8')>20){
    		// 	$aaa = mb_substr($value['name'],0,20,'utf-8').'...';
    		// }  以后再进行调节字符长度
    		$CartData[$key]['pic'] = $GoodsModel->where(array('gid'=>$value['id']))->pluck('pic');
    		$num = $value['num'];
    		$price = $value['price'];
    		$subtotal = $num * $price;
    		$CartData[$key]['subtotal'] = $subtotal;  //计算的是该商品的小计
    	}
		return $CartData;
	}

}
?>